Mapping display space

ABSTRACT

Techniques are disclosed for mapping display space (for example, for display devices) using extensions to spatially-enabled databases. Built-in structures and functions of a spatially-enabled object relational database system can therefore be leveraged. Use of the disclosed techniques enables, for example, quickly determining whether one object to be displayed on the display of a computing device will overlap (in space and/or in time) another object to be displayed on that device.

RELATED INVENTION

[0001] The present invention is related to commonly-assigned U. S. Pat. (Ser. No. 09/860201, filed May 18, 2001), which is entitled “Method and System for Mapping Shelf Space” and which is hereby incorporated herein by reference. This patent is referred to hereinafter as “the related invention”.

BACKGROUND OF THE INVENTION

[0002] 1. Field of the Invention

[0003] The present invention relates to spatially-enabled computer databases, and deals more particularly with techniques for using extensions to a spatial reference system to map display on devices such as an electronic display of a computing device.

[0004] 2. Description of the Related Art

[0005] Geographic information systems are known in the art, and store geographic or cartographic (i.e., map-oriented) data. Systems are also known in the art for using relational databases to process (e.g., store and access) this type of geographic data. When a relational database is adapted for use with geographic information system (“GIS”) data, the database is often referred to as “spatially-enabled”.

[0006] Geographic data pertains to physical locations, and when using 2 dimensions, is typically expressed in terms of latitude and longitude. The latitude and longitude values for a particular location are given relative to fixed points of reference, using a coordinate system in which a latitude value represents an offset from the equator and a longitude value represents an offset from the prime meridian.

[0007] Geographic data may describe the physical location or area of a place or thing, or even the location of a person. When geographic data is stored in a spatially-enabled database, it is stored using a geometric model in which locations/areas are expressed in terms of geometric shapes or objects. The geometric data stored according to this model may also be referred to as “spatial data”. In addition to locations or areas of geographic objects, spatial data may also represent relationships among objects, as well as measurements or distances pertaining to objects. As an example of relationships among objects, spatial data may be used to determine whether a geometric shape corresponding to the location of a particular bridge intersects a geometric shape corresponding to the location of a river (thus determining whether the bridge crosses the river). As an example of using spatial data for measurements or distances, the length of a road passing through a particular county could be determined using the geometric object representing the road and a geometric object which specifies the boundaries of the county.

[0008] Spatial data values are expressed in terms of “geometry” or “geometric” data types. Thus, the location of a landmark might be expressed as a point having (x,y) coordinates, and the perimeter of a lake might be defined using a polygon. Typical spatially-enabled database systems support a set of basic geometry data types and a set of more complex geometry data types, where the basic types comprise points, line strings, and polygons, and the complex types comprise collections of points, collections of line strings, and collections of polygons.

[0009] A common geometric model used by spatially-enabled database systems is shown in FIG. 1. As depicted therein, the model is structured as a hierarchy or tree 100 having geometry 105 as its root, and having a number of subclasses. Point 110, linestring 120, and polygon 130 represent the basic geometry data types. In this model 100, linestring 120 is a subclass of curve 115, and polygon 130 is a subclass of surface 125. Geometry collection class 135 is the root of a subtree representing the more complex geometric data types, and each subclass thereof is a homogeneous collection. Multipolygon 145, multistring 155, and multipoint 160 represent the collections of polygons, line strings, and points, respectively. Multipolygon 145 is a subclass of multisurface 140 in this model, and multistring 155 is a subclass of multicurve 150. Only the classes which are leaves of this tree 100 are instantiable in typical spatially-enabled database systems; the other nodes correspond to abstract classes. (Each of these entities is an actual data type.)

[0010] Referring now to the basic data types in particular, geometric data according to the model 100 of FIG. 1 may be expressed in terms of a single point having (x,y) coordinates, or may be described as a line string or a polygon. A line string may be considered as one or more line segments which are joined together, and is defined using an ordered collection of (x,y) coordinates (i.e., points) that correspond to the endpoints of the connected segments. A polygon is defined using an ordered collection of points at which a plurality of line segments end, where those line segments join to form a boundary of an area.

[0011] Many different examples may be imagined where points, line strings, and polygons can be used for describing geographic locations or areas. A point might represent the location of a landmark such as a house or a building, or the intersection of two streets. A line string might be used to describe a street, or the path of a river or power line, or perhaps a set of driving directions from one location to another. A polygon might be used to describe the shape of a state or city, a voting district, a lake, or any parcel of land or body of water.

[0012] Once spatial information has been stored in a database, the database can be queried to obtain many different types of information, such as the distance between two cities, whether a national park is wholly within a particular state, and so forth.

[0013] As one example of a spatially-enabled database, a feature known as “Spatial Extender” can be added to IBM's DB2® relational database product to provide GIS support. Spatial Extender provides support for the geometric data types shown in FIG. 1, and provides a number of built-in functions for operating on those data types. When using Spatial Extender, spatial data can be stored in columns of spatially-enabled database tables by importing the data or deriving it. The import process uses one of several input formats (such as text or binary data, the details of which are not pertinent to the present invention), and processes that data using built-in functions to convert it to geometric data. Spatial data may be derived either by operating on existing geometric data (for example, by defining a new polygon as a function of an existing polygon) or by using a process known as “geocoding”. A geocoder is provider with Spatial Extender that takes as input an address in the United States and derives a geometric point representation. Other geocoders can be substituted to provide other types of conversions.

[0014] Refer to “IBM® DB2® Spatial Extender User's Guide and Reference”, Version 7.2, published by IBM as IBM publication SC27-0701-01, for more information on Spatial Extender. This User's Guide is hereby incorporated herein as if set forth fully, and is hereinafter referred to as the “Spatial Extender User's Guide”. (“IBM” and “DB2” are registered trademarks of International Business Machines Corporation.) The related invention discloses techniques for mapping shelf space using a spatial reference system. The location of a product on a particular shelf can be stored in a spatially-enabled database, and the location of the shelf within a particular aisle of an interior of a structure can be similarly represented. A time duration for which a product remains on a shelf can also be specified.

SUMMARY OF THE INVENTION

[0015] An object of the present invention is to provide techniques for mapping display space.

[0016] Another object of the present invention is to provide techniques for using a spatially-enabled database to map display space of a device (such as an electronic display which may be provided by various computing devices).

[0017] A further object of the present invention is to define techniques for mapping display space using a spatial reference system.

[0018] Still, another object of the present invention is to define extensions to a spatial reference system for mapping display space.

[0019] Yet another object of the present invention is to define techniques for using a spatially-enabled database to relate display objects within pages and/or frames to each other.

[0020] Other objects and advantages of the present invention will be set forth in part in the description and in the drawings which follow and, in part, will be obvious from the description or may be learned by practice of the invention.

[0021] To achieve the foregoing objects, and in accordance with the purpose of the invention as broadly described herein, the present invention provides methods, systems, and computer program products for mapping display space using spatial extensions. In a preferred embodiment, this technique comprises: establishing a spatial reference system representing the display space, based upon a coordinate reference system representing the display space; establishing the display space as a geometric entity within the spatial reference system; and describing, as geometric entities, objects to be displayed on the display space using the spatial extensions.

[0022] The spatial extensions may further comprise descriptions of a position of the objects in a page or frame and a position of the page or frame within the display space. Alternatively, the spatial extensions may further comprise descriptions of a position of the objects in a page or frame, a position of the page or frame within the display space, and a point in time or a duration of time that the objects occupy the position in the page or frame within the display space.

[0023] The technique may further comprise establishing a spatial column for storing a set of spatial data corresponding to the geometric entities describing the objects to be displayed. The technique may also further comprise establishing an attribute column in a spatially-enabled database storing the geometric entities describing the objects to be displayed, wherein the attribute column stores attribute data corresponding to each of the objects to be displayed.

[0024] The technique may further comprise establishing a spatial column in a spatially-enabled database storing the geometric entities describing the objects to be displayed, wherein the spatial column is adapted for storing a set of spatial data corresponding to a position of the objects in a page or frame and the position of a page or frame within the display space. Optionally, an additional column may be established in the spatially-enabled database, where this additional column is adapted for storing a set of spatial data corresponding to a point in time or a duration of time that the objects occupy the position in the page or frame within the display space.

[0025] Operations may be performed using the spatial data. For example, the described geometric entities may be used to determine the layout of the objects on the display space. As another example, the described geometric entities may be used to determine a spatial relationship between a first object and a second object on the display space.

[0026] The present invention will now be described with reference to the following drawings, in which like reference numbers denote the same element throughout.

BRIEF DESCRIPTION OF THE DRAWINGS

[0027]FIG. 1 illustrates a common geometric model used by spatially-enabled database systems, according to the prior art;

[0028]FIG. 2 is a block diagram of a computer system that may be employed in the present invention;

[0029]FIG. 3 is a block diagram of computer software which may be employed in the computer system of FIG. 2, according to preferred embodiments of the present invention;

[0030]FIG. 4 provides a flowchart illustrating logic that may be used to implement a display space mapping routine, according to preferred embodiments of the present invention;

[0031]FIG. 5 illustrates an exemplary two-dimensional coordinate reference system of a display space, according to preferred embodiments of the present invention;

[0032]FIG. 6 illustrates an exemplary two-dimensional spatial reference system of a display space, according to preferred embodiments of the present invention;

[0033]FIG. 7 illustrates an exemplary two-dimensional spatial reference system of a time component, according to preferred embodiments of the present invention;

[0034]FIG. 8A illustrates a hierarchy of spatial data types, according to preferred embodiments of the present invention;

[0035] FIGS. 8B-8D illustrate branches of the hierarchy shown in FIG. 8A, according to preferred embodiments of the present invention; and

[0036]FIGS. 9A and 9B illustrate tables which may be used to store spatial data for use with preferred embodiments of the present invention.

DESCRIPTION OF PREFERRED EMBODIMENTS

[0037] The present invention discloses techniques whereby data stored in spatially-enabled databases can be used to map display space for devices (such as the display screen of a computing device). Extensions to a data model used in known commercially-available systems are disclosed herein to enable this mapping. This provides a novel integration focus, whereby object-relational database systems and their inherent integration and data control are leveraged. Furthermore, commercially-available software systems are available for tracking and analyzing spatially-enabled database columns, and these systems may be used with the extensions disclosed herein to track and analyze display space information.

[0038] Typically, spatially-enabled databases store information referring to geographic locations. The present invention uses relative positions in 2-dimensional space, along with a time dimension, to represent objects to be rendered in a display space.

[0039] While discussions herein refer to use of 2-dimensional space, this is for purposes of illustration and not of limitations. The inventive techniques disclosed herein may be used in a 3-dimensional display mapping for a proper display space, such as a holographic or other display which provides (or simulates) 3 dimensions. Refer to the related invention for more information on how 3-dimensional space is used for mapping shelf space. The teachings of the present invention may be applied to 3-dimensional space in a similar manner.

[0040] As an example of using the techniques disclosed herein for 3-dimensional mappings, the human body might be represented in stored data using 3 dimensions, for example for purposes of anatomical studies, with the spatial reference system being adapted to modify the coordinate reference data prior to storage. The coordinate reference system in turn might be devised to maintain approximate distances between body parts, or to preserve the approximate shape of an organ. This information may be used when displaying a view in 2 dimensions or in a 3-dimensional rendering.

[0041] Using a spatially-enabled relational database with data type extensions as disclosed herein, operations on that data can leverage the native data normalization and data management facilities provided by the database system. The spatial extensions, geometric data types, grid indexing functions, user-defined functions, and built-in procedures of the database system can also be leveraged to optimize operations on the tables containing display space information. The built-in relational database functions for querying tables and retrieving data therefrom and built-in spatial data functions may be leveraged by software that displays objects on a display device (and/or manages display objects). In this manner, operations on the stored data can use optimized built-in functions of the database system, rather than requiring programmers to develop complex code for interacting with this data. As a result, programmer efficiency is increased and code complexity is reduced, thereby leading to decreased program development and support costs. Furthermore, use of the optimized built-in database functions for interacting with the stored data may increase the efficiency of programs which display and/or manage data.

[0042] Preferred embodiments of the present invention are implemented in a DB2® object relational database system in which the Spatial Extender feature has been installed to provide spatial data support. Alternate embodiments may use similar systems.

[0043] The manner in which preferred embodiments of the present invention operate to map display space will now be described with reference to FIGS. 2-9B.

[0044] A computer 210 that may be used in the present invention is shown in FIG. 2. Computer 210 may be configured in a number of different forms for accepting input, processing the input according to specified instructions, and outputting the processing results, as is well known in the art. Computer 210 may be, for example, a personal computer, a workstation, a supercomputer, a mainframe computer, a minicomputer, a handheld computer, a wearable computing device, a personal digital assistant (“PDA”), a smart appliance in the home, and so forth. By way of example, computer 210 may function as a server in a client/server architecture in a networking environment; alternatively, computer 210 may be a client device in a client/server architecture, a device operating within another networking environment, or a stand-alone device not operating within a networking environment.

[0045] As shown in FIG. 2, computer 210 preferably includes a bus 211 for facilitating electrical communication among one or more central processing units (“CPUs”) 212, a read-only memory (“ROM”) 213, a random access memory (“RAM”) 214, an input/output (“I/O”) controller 215, a disk controller 216, a communication controller 217, and a user interface controller 218.

[0046] CPU 212 is preferably one of the Intel families of microprocessors, one of the Advanced Micro Devices, Inc. families of microprocessors, one of the Motorola families of microprocessors, or one of the various versions of a Reduced Instruction Set (“RISC”) microprocessor such as the PowerPC® chip manufactured by IBM. In preferred embodiments, ROM 213 stores various controlling programs such as the Basic Input-Output System (“BIOS”) developed by IBM. RAM 214 is preferably used for loading an operating system and selectively loading controlling programs and/or application programs. (“PowerPC” is a registered trademark of IBM.) I/O controller 215 may be an aggregate of controllers for facilitating interaction between CPU 212 and one or more input devices, such as a keyboard 221 and a pointing device such as a mouse 220. I/O controller 215 may also facilitate interaction between CPU 212 and one or more output devices, such as a printer 222 or fax 223.

[0047] Disk controller 216 may be an aggregate of controllers for facilitating interaction between CPU 212 and disk drives 224 and/or other types of data storage devices. Disk drive 224 is generally representative of a hard drive, floppy disk drive, compact-disk (“CD”) drive, etc. Preferably, an operating system (which in preferred embodiments is a conventional operating system such as AIX® from IBM or Windows® from Microsoft Corporation) is stored on a disk drive 224, for loading into memory 214. (“AIX” is a registered trademark of IBM, and “Windows” is a registered trademark of Microsoft Corporation.) Communication controller 217 may be an aggregate of controllers for facilitating interaction between CPU 212 and a network 225. According to preferred embodiments, communication controller 217 also facilitates interaction between CPU 212 and an object-relational database (“ORDB”) 226 stored on one or more local or remote data storage devices.

[0048] User interface controller 218 may be an aggregate of controllers for facilitating interaction between CPU 212 and one or more user interface devices, such as visual device 227 and/or audio device 228. For example, visual device 227 may represent any of a number of graphic display devices, such as a monitor or other display, and audio deice 228 may represent a speaker or other audio device.

[0049] Those of skill in the art will recognize that the components depicted in FIG. 2 are provided by way of example and are not intended to limit the present invention.

[0050] Referring now to FIG. 3, software 300 is illustrated. Software 300 preferably comprises one or more modules written in an object-oriented language, and executes on computer 210 of FIG. 2 to provide a display space mapping routine (shown in FIG. 4) under control of an operating system. The modules comprising software 300 may be physically stored within one or more fixed or removable computer-readable media that is electrically, magnetically, optically, chemically, or otherwise altered to store computer-readable program code, where this media is readable by a device such as disk drive 224.

[0051] In other embodiments of computer 210, software 300 may be stored in one or more other computer-readable media, such as a CD-ROM disk. Alternatively, software 300 or portions thereof may be downloaded to RAM 214 via network 225. In other embodiments of computer 210, software 300 can be partially or fully implemented with digital circuitry, analog circuitry, or a combination thereof.

[0052] The ORDB 226 is preferably stored on one or more local or remote storage devices 224, and interacts with software 300 during operation of the display space mapping techniques disclosed herein.

[0053] In preferred embodiments, software 300 includes an object-relational database management system (“ORDBMS”) 310, including spatial data types 311, one or more spatial extender access modules 320, and a conventional interface 330 (e.g., a graphical user interface and/or a network interface) for establishing communication with visual device 227 and/or network 225. In one embodiment of software 300, ORDBMS 310 and module(s) 320 incorporate a Structured Query Language (“SQL”) interface. An execution of ORDBMS 310 under control of the operating system facilitates storage of data within ORDB 226 and other operations on this data (such as retrieving, querying, etc.), as will be obvious to one of skill in the art. An execution of spatial extender access module(s) 320 (referred to equivalently herein as a GIS) under control of the operating system facilitates storage of spatial data and objects within ORDB 226, as well as querying of the spatial data and objects and other operations, as will also be obvious to one of skill in the art.

[0054] Optional user-defined functions 321 allow accessing (e.g., storing, retrieving, comparing, modifying, etc.) mapping data in application-specific ways.

[0055]FIG. 4 provides a flow chart illustrating logic that may be used to implement preferred embodiments of display space mapping, for example by a GIS such as module(s) 320, as disclosed herein. As shown in FIG. 4, a coordinate reference system (“CRS”) representing the display space is established (Block 400). This establishment process may comprise generating, retrieving, and/or importing a description of the display space, using techniques which are known in the art. In preferred embodiments, the CRS corresponding to the display space is a 2-dimensional CRS, as illustrated by element 500 in FIG. 5.

[0056]FIG. 5 is representative of a typical display space, which is arranged as a rectangular 2-dimensional surface on which one or more pages and/or one or more frames may be displayed during operation of an application program. Alternatively or in addition, the display may be comprised of one or more graphical objects of various shapes, each of which may overlay other objects (including another page/frame that serves as a background). In this example, a rectangular object 530 is displayed, and may serve to display a title bar for a visual display. A single (x,y) point on the display layout might also be identified, as shown in the example at 540, and might serve as a point of reference, such as a screen location for an action. (On a display space defined by large-block pixels, a point may occupy a considerable amount of space; on other displays, a point may be relatively small.) Another rectangular object 550 is shown in the example, and might represent the display space to be occupied by a tabular representation of data or perhaps by the body of a displayed page. Finally, the example shows a line segment 560, which might represent a delineation of the display layout (for example, to separate the page body from the page footer area).

[0057] Those of skill in the art will recognize that, in some cases, the x-coordinate axis 510 and y-coordinate axis 520 may contain non-integer coordinates and may contain negative coordinates. For example, depending on the rendering software in use for rendering a defined layout on the display device, the placement of the graphical objects might be described with reference to a coordinate system that places coordinates (0,0) at the lower left of the display space layout, or in the middle of the layout, and so forth.

[0058] Returning to FIG. 4, in Block 410, CRS 500 serves as a basis for establishing a spatial reference system (“SREF”) representing the layout of the display space. Preferably, the SREF is a 2-dimensional SREF based on CRS 500. This 2-dimensional SREF is illustrated at element 600 in FIG. 6. Use of the SREF ensures that values for the x-coordinate axis 610 and y-coordinate axis 620 of SREF 600 will be stored in the relational database as positive integer values. Additionally, in Block 420, a 2-dimensional SREF 700 is preferably established, as shown in FIG. 7, where this SREF 700 includes an x-coordinate axis 710 and a y-coordinate axis 720. The x-coordinate axis and y-coordinate axis may represent any standard measure of time that is deemed useful by a particular implementation. In preferred embodiments, the x-coordinate axis represents days and the y-coordinate axis represents hours, where values of the days and hours will be positive integer values that represent the duration for a geometric object to be displayed on a display space. For example, a background might occupy a display space on a long-term basis, while a title bar might be displayed on the space (or overlaid on the background) for some short period of time. Instead of days and hours, shorter or longer time frames might be used alternatively. As an example of shorter time frames, a web portal display might be defined as including portlet output, such as a stock ticker display between the hours of 9:30 and 4:00, or the current weather conditions during the time period in which employees normally leave the office for lunch, and so forth.

[0059] Use of a time dimension is an optional aspect of the present invention. While preferred embodiments are described herein as using fixed time coordinates, alternative embodiments may interpret the time axes as relative time. For example, time value (0,0) may be used to represent the initially-rendered display on the display space, while time value (1,5) might represent 5 minutes into the first hour after the initial display.

[0060] Block 430 establishes, as geometric entities within SREF 600, one or more display objects that are to be rendered in a display space. Preferably, these geometric entities comprise one or more points, line strings, and/or polygons, as discussed earlier. For example, a polygon 630 as shown in FIG. 6 may be established in SREF 600 as a geometric representation of the display area for a title bar 530 in FIG. 5, and a polygon 650 may be established to represent the display area for tabular data 550. A point 640 may be established in SREF 600 as a geometric representation of the (x,y) coordinates at 540 of FIG. 5, and a line string 660 may be established as a geometric representation of line segment 560.

[0061] Furthermore, a time component indicating a duration of displaying each geometric entity may be established (Block 440). The time component may be represented as a point, a line string, or a polygon, depending on how long a particular object is to be displayed. When represented as a point (see element 730 of FIG. 7), an object will be displayed briefly, for example during a transient frame display. When represented as a line string (see element 740 of FIG. 7), the object (in the case of a vertical line) is to be displayed from time y1 until time y2, where y1 is the time corresponding to the bottom of the line string and time y2 is the time corresponding to the top of the line string. (Note that, by their definition, line string entities are not limited to linear geometric shapes.) When represented as a polygon (see element 750 of FIG. 7), the object is to be displayed starting at time (x1, y1) and continuing until time (x2, y2), where (x1, y1) are the coordinates of the lower left comer of the polygon and (x2, y2) are the coordinates of the upper right corner.

[0062] Referring now to FIG. 8A, in preferred embodiments, the basis for establishing the geometric entities within SREF 600 and SREF 700 are spatial data types 311 (see FIG. 3), which are extensions 810, 820, 830, 840 of a well-established hierarchy 800 of spatial data types.

[0063] Spatial data types 311 are extended, according to the present invention, to include a noninstantiable form of a data type 810 which in the example is named “ST_GEOCOLLECTION2”. In preferred embodiments, this data type 810 comprises data types referred to as a “P_F” data type 820, a “P-F-T” data type 830, and a “Time” data type 840 (each of which is also non-instantiable).

[0064] P_F data type 820 includes, in preferred embodiments, a number of instantiable data types, as shown in FIG. 8B. These instantiable data types within abstract data type P_F define a position “P” or location of an object in a page or frame, and a position or location “F” of this page or frame within a display space. For example, a button or icon might be defined as occupying a position within a frame that will be displayed at the bottom of a particular page. The P_F data type can be used to relate this button or icon to the frame. When using a point value for “P”, the location might identify an anchor or starting location for an object.

[0065] P_F_T data type 830 includes, in preferred embodiments, data types in instantiable form as shown in FIG. 8C. These instantiable data types within abstract data type P F_T may be used to define a position “P” of an object with a page/frame “F” at a point in time “T” (or duration of time). For example, a “welcome” banner object might be displayed temporarily on a page or frame, and an instance of P_F_T data type could be used for this purpose. In FIG. 8C, “PT” is an abbreviation for point, “LS” is an abbreviation for line string, and “PN” is an abbreviation for polygon.

[0066] Time data type 840 includes, in preferred embodiments, several instantiable data types, as shown in FIG. 8D. These instantiable data types within abstract data type Time 840 describe a point in time or a duration of time that an object occupies a particular location in the display space. For example, an instantiation of Point 841 may represent point 730 of FIG. 7, an instantiation of Linestring 842 may represent line string 740 of FIG. 7, and an instantiation of Polygon 843 may represent polygon 750 of FIG. 7.

[0067] Returning to FIG. 4, one or more spatial columns corresponding to the spatial reference systems are established, in Block 450, within ORDB 226. By way of example, table 900 in FIG. 9A illustrates an exemplary attribute column 910 labeled “object”, which preferably contains some type of unique object identifier, and an exemplary location column 920 which contains a geocoded spatial data extension value that describes the object's position in space and time. In column 920, “P” is a point, line string, or polygon representing the coordinates of SREF 600, indicating a location of the object on a page or frame; “F” is a point, line string, or polygon representing the coordinates of SREF 600, indicating a location of a page or frame within the display space; and “T” is a point, line string, or polygon representing the coordinates of SREF 700, indicating a point in time or duration of time that the object occupies a particular location in the display space. Optionally, a key or index may be provided for the entries in table 900 to facilitate more efficient access to the location column or its sub-elements.

[0068] Also by way of example, table 950 in FIG. 9B illustrates an exemplary attribute column 960 labeled “object”, which (as in FIG. 9A) preferably contains some type of unique object identifier, and a pair of exemplary columns labeled “position location” 970 and “time location” 980. Columns 970 and 980 have spatial data extension values geocoded and stored therein that describes the object's position in space (column 970) and time (column 980). Values in columns 970 correspond to the “P” and “F” values described with reference to FIG. 9A, and values in columns 980 correspond to the “T” values which have been described. Optionally, a key or index may be provided for the entries in table 950 to facilitate more efficient access to the location columns.

[0069] When time values are not used by an implementation of the present invention, the time column 980 is omitted from table 950 (and the location values in column 920 of table 900 are replaced by values of the P_F data type).

[0070] Returning again to FIG. 4, at Block 460, conventional user-defined functions 321 and/or built-in functions of GIS 320 may be invoked to access one or more geometric data values stored in the spatially-enabled database columns. The logic in FIG. 4 then ends. (As will be obvious, blocks of this flow chart may be repeated for a particular iteration; for example, multiple functions may be invoked at Block 460.)

[0071] Examples of the functions invoked in Block 460 include determining whether one object to be displayed will overlap another object to be displayed (either in space and/or in time) or building a display screen layout. Many other scenarios may be envisaged once the teachings disclosed herein are known.

[0072] As has been described, the present invention defines techniques for using spatially-enabled databases to map display space. Advantages thus provided include leveraging spatial functions which are built into a GIS (such as GIS 320 of FIG. 3). The extensions disclosed herein enable exploiting known commercial technology to provide a novel integration focus, and leverage object-relational database systems and their inherent integration and data control. Location data at varying levels of granularity may be defined within the geospatial definition of the display space objects, and abstract data types may be extended as disclosed herein to include a time dimension within the geospatial object definitions. Built-in grid accessing functions may be used for efficient access. Geospatial (i.e., spatially-enabled) columns using the disclosed data types may be added directly to existing relational tables (including tables in star-schema data warehouses).

[0073] As will be appreciated by one of skill in the art, embodiments of the present invention may be provided in various forms, including methods, systems, or computer program products. Accordingly, the present invention may take the form of an entirely hardware embodiment, an entirely software embodiment, or an embodiment combining software and hardware aspects. Furthermore, the present invention may take the form of a computer program product which is embodied on one or more computer-readable storage media (including, but not limited to, disk storage, CD-ROM, optical storage, and so forth) having computer-readable program code embodied therein.

[0074] The present invention has been described with reference to flow diagrams and/or block diagrams of methods, apparatus (systems), and computer program products according to preferred embodiments of the invention. It will be understood that each flow and/or block of the flow diagrams and/or block diagrams, and combinations of flows and/or blocks in the flow diagrams and/or block diagrams, can be implemented by computer program instructions. These computer program instructions may be provided to a processor of a general purpose computer, special purpose computer, embedded processor, or other programmable data processing apparatus to produce a machine, such that the instructions, which execute via the processor of the computer or other programmable data processing apparatus, create means for implementing the functions specified in the flow diagram flow or flows and/or block diagram block or blocks.

[0075] These computer program instructions may also be stored in a computer-readable memory that can direct a computer or other programmable data processing apparatus to function in a particular manner, such that the instructions stored in the computer-readable memory produce an article of manufacture including instruction means which implement the function specified in the flow diagram flow or flows and/or block diagram block or blocks.

[0076] The computer program instructions may also be loaded onto a computer or other programmable data processing apparatus to cause a series of operational steps to be performed on the computer or other programmable apparatus to produce a computer-implemented process such that the instructions which execute on the computer or other programmable apparatus provide steps for implementing the functions specified in the flow diagram flow or flows and/or block diagram block or blocks.

[0077] While preferred embodiments of the present invention have been described, additional variations and modifications may occur to those skilled in the art once they learn of the basic inventive concepts. Therefore, it is intended that the appended claims shall be construed to include the preferred embodiments and all such variations and modifications as fall within the spirit and scope of the invention. 

What is claimed:
 1. A method of mapping display space using spatial extensions, comprising steps of: establishing a spatial reference system representing the display space, based upon a coordinate reference system representing the display space; establishing the display space as a geometric entity within the spatial reference system; and describing, as geometric entities, objects to be displayed on the display space using the spatial extensions.
 2. The method according to claim 1, wherein the spatial extensions further comprise descriptions of a position of the objects in a page or frame and a position of the page or frame within the display space.
 3. The method according to claim 1, further comprising the step of establishing a spatial column for storing a set of spatial data corresponding to the geometric entities describing the objects to be displayed.
 4. The method according to claim 3, further comprising the step of establishing an attribute column in a spatially-enabled database storing the geometric entities describing the objects to be displayed, wherein the attribute column stores attribute data corresponding to each of the objects to be displayed.
 5. The method according to claim 1, wherein the spatial extensions further comprise descriptions of a position of the objects in a page or frame, a position of the page or frame within the display space, and a point in time or a duration of time that the objects occupy the position in the page or frame within the display space.
 6. The method according to claim 1, further comprising the steps of: establishing a spatial column in a spatially-enabled database storing the geometric entities describing the objects to be displayed, wherein the spatial column is adapted for storing a set of spatial data corresponding to a position of the objects in a page or frame and the position of a page or frame within the display space.
 7. The method according to claim 1, further comprising the steps of: establishing a first spatial column in a spatially-enabled database storing the geometric entities describing the objects to be displayed, wherein the first spatial column is adapted for storing a first set of spatial data corresponding to a position of the objects in a page or frame and the position of a page or frame within the display space; and establishing a second spatial column in the spatially-enabled database, the second spatial column adapted for storing a second set of spatial data corresponding to a point in time or a duration of time that the objects occupy the position in the page or frame within the display space.
 8. The method according to claim 1, further comprising the step of: determining, from the described geometric entities, the layout of the objects on the display space.
 9. The method according to claim 1, further comprising the step of: determining, from the described geometric entities, a spatial relationship between a first object and a second object on the display space.
 10. A system for mapping display space using spatial extensions, comprising: means for establishing a spatial reference system representing the display space, based upon a coordinate reference system representing the display space; means for establishing the display space as a geometric entity within the spatial reference system; and means for describing, as geometric entities, objects to be displayed on the display space using the spatial extensions.
 11. The system according to claim 10, wherein the spatial extensions further comprise descriptions of a position of the objects in a page or frame and a position of the page or frame within the display space.
 12. The system according to claim 10, further comprising means for establishing a spatial column for storing a set of spatial data corresponding to the geometric entities describing the objects to be displayed.
 13. The system according to claim 12, further comprising means for establishing an attribute column in a spatially-enabled database storing the geometric entities describing the objects to be displayed, wherein the attribute column stores attribute data corresponding to each of the objects to be displayed.
 14. The system according to claim 10, wherein the spatial extensions further comprise descriptions of a position of the objects in a page or frame, a position of the page or frame within the display space, and a point in time or a duration of time that the objects occupy the position in the page or frame within the display space.
 15. The system according to claim 10, further comprising means for establishing a spatial column in a spatially-enabled database storing the geometric entities describing the objects to be displayed, wherein the spatial column is adapted for storing a set of spatial data corresponding to a position of the objects in a page or frame and the position of a page or frame within the display space.
 16. The system according to claim 10, further comprising: means for establishing a first spatial column in a spatially-enabled database storing the geometric entities describing the objects to be displayed, wherein the first spatial column is adapted for storing a first set of spatial data corresponding to a position of the objects in a page or frame and the position of a page or frame within the display space; and means for establishing a second spatial column in the spatially-enabled database, the second spatial column adapted for storing a second set of spatial data corresponding to a point in time or a duration of time that the objects occupy the position in the page or frame within the display space.
 17. The system according to claim 10, further comprising means for determining, from the described geometric entities, the layout of the objects on the display space.
 18. The system according to claim 10, further comprising means for determining, from the described geometric entities, a spatial relationship between a first object and a second object on the display space.
 19. A computer program product for mapping display space using spatial extensions, the computer program product embodied on one or more computer-readable media and comprising: computer-readable program code means for establishing a spatial reference system representing the display space, based upon a coordinate reference system representing the display space; computer-readable program code means for establishing the display space as a geometric entity within the spatial reference system; and computer-readable program code means for describing, as geometric entities, objects to be displayed on the display space using the spatial extensions.
 20. The computer program product according to claim 19, wherein the spatial extensions further comprise descriptions of a position of the objects in a page or frame and a position of the page or frame within the display space.
 21. The computer program product according to claim 19, further comprising computer-readable program code means for establishing a spatial column for storing a set of spatial data corresponding to the geometric entities describing the objects to be displayed.
 22. The computer program product according to claim 21, further comprising computer-readable program code means for establishing an attribute column in a spatially-enabled database storing the geometric entities describing the objects to be displayed, wherein the attribute column stores attribute data corresponding to each of the objects to be displayed.
 23. The computer program product according to claim 19, wherein the spatial extensions further comprise descriptions of a position of the objects in a page or frame, a position of the page or frame within the display space, and a point in time or a duration of time that the objects occupy the position in the page or frame within the display space.
 24. The computer program product according to claim 19, further comprising computer-readable program code means for establishing a spatial column in a spatially-enabled database storing the geometric entities describing the objects to be displayed, wherein the spatial column is adapted for storing a set of spatial data corresponding to a position of the objects in a page or frame and the position of a page or frame within the display space.
 25. The computer program product according to claim 19, further comprising: computer-readable program code means for establishing a first spatial column in a spatially-enabled database storing the geometric entities describing the objects to be displayed, wherein the first spatial column is adapted for storing a first set of spatial data corresponding to a position of the objects in a page or frame and the position of a page or frame within the display space; and computer-readable program code means for establishing a second spatial column in the spatially-enabled database, the second spatial column adapted for storing a second set of spatial data corresponding to a point in time or a duration of time that the objects occupy the position in the page or frame within the display space.
 26. The computer program product according to claim 19, further comprising computer-readable program code means for determining, from the described geometric entities, the layout of the objects on the display space.
 27. The computer program product according to claim 19, further comprising computer-readable program code means for determining, from the described geometric entities, a spatial relationship between a first object and a second object on the display space. 